<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Hardware Abstraction Layer (HAL)</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen_style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><a href="http://www.cypress.com/"><img alt="Logo" src="logo.png"/></a></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Hardware Abstraction Layer (HAL)</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('group__group__hal__usb__dev__common.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">Common<div class="ingroups"><a class="el" href="group__group__hal.html">HAL Drivers</a> &raquo; <a class="el" href="group__group__hal__usb__dev.html">USB Device</a></div></div></div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">General Description</h2>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga62a268fe35f5e68f1faf9b362ee6c307"><td class="memItemLeft" align="right" valign="top"><a id="ga62a268fe35f5e68f1faf9b362ee6c307" name="ga62a268fe35f5e68f1faf9b362ee6c307"></a>
typedef uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>cyhal_usb_dev_ep_t</b></td></tr>
<tr class="memdesc:ga62a268fe35f5e68f1faf9b362ee6c307"><td class="mdescLeft">&#160;</td><td class="mdescRight">USB endpoint address (consists from endpoint number and direction) <br /></td></tr>
<tr class="separator:ga62a268fe35f5e68f1faf9b362ee6c307"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2f2997674c9f3de87ef66c2a7efba533"><td class="memItemLeft" align="right" valign="top"><a id="ga2f2997674c9f3de87ef66c2a7efba533" name="ga2f2997674c9f3de87ef66c2a7efba533"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><b>cyhal_usb_dev_irq_callback_t</b>) (void)</td></tr>
<tr class="memdesc:ga2f2997674c9f3de87ef66c2a7efba533"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback handler for USB Device interrupt. <br /></td></tr>
<tr class="separator:ga2f2997674c9f3de87ef66c2a7efba533"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88241f53490fed2cce33872947c67053"><td class="memItemLeft" align="right" valign="top"><a id="ga88241f53490fed2cce33872947c67053" name="ga88241f53490fed2cce33872947c67053"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><b>cyhal_usb_dev_endpoint_callback_t</b>) (<a class="el" href="group__group__hal__usb__dev__common.html#ga62a268fe35f5e68f1faf9b362ee6c307">cyhal_usb_dev_ep_t</a> endpoint)</td></tr>
<tr class="memdesc:ga88241f53490fed2cce33872947c67053"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback handler for the transfer completion event for data endpoints (not applicable for endpoint 0) <br /></td></tr>
<tr class="separator:ga88241f53490fed2cce33872947c67053"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga06d07346fb9aeaca315b468647a79f25"><td class="memItemLeft" align="right" valign="top"><a id="ga06d07346fb9aeaca315b468647a79f25" name="ga06d07346fb9aeaca315b468647a79f25"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><b>cyhal_usb_dev_event_callback_t</b>) (void)</td></tr>
<tr class="memdesc:ga06d07346fb9aeaca315b468647a79f25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback handler for the events for USB Device. <br /></td></tr>
<tr class="separator:ga06d07346fb9aeaca315b468647a79f25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf0796dc590759a7809327c60d4616218"><td class="memItemLeft" align="right" valign="top"><a id="gaf0796dc590759a7809327c60d4616218" name="gaf0796dc590759a7809327c60d4616218"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><b>cyhal_usb_dev_sof_callback_t</b>) (uint32_t frame_number)</td></tr>
<tr class="memdesc:gaf0796dc590759a7809327c60d4616218"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback handler for the events for USB Device. <br /></td></tr>
<tr class="separator:gaf0796dc590759a7809327c60d4616218"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gab0df7903f398f360d71e8beb78ead49b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#gab0df7903f398f360d71e8beb78ead49b">cyhal_usb_dev_event_t</a> { <br />
&#160;&#160;<a class="el" href="group__group__hal__usb__dev__common.html#ggab0df7903f398f360d71e8beb78ead49ba519b2fbe16ee25f7b19e30e1055a6532">CYHAL_USB_DEV_EVENT_BUS_RESET</a>
, <br />
&#160;&#160;<a class="el" href="group__group__hal__usb__dev__common.html#ggab0df7903f398f360d71e8beb78ead49baa1d503404e8c909e63c329dc4f74684b">CYHAL_USB_DEV_EVENT_EP0_SETUP</a>
, <br />
&#160;&#160;<a class="el" href="group__group__hal__usb__dev__common.html#ggab0df7903f398f360d71e8beb78ead49ba2dfe95c0891c7c37eda0c5e707e45229">CYHAL_USB_DEV_EVENT_EP0_IN</a>
, <br />
&#160;&#160;<a class="el" href="group__group__hal__usb__dev__common.html#ggab0df7903f398f360d71e8beb78ead49bac715be16269b7dfb4294a8fb13b649ab">CYHAL_USB_DEV_EVENT_EP0_OUT</a>
<br />
 }</td></tr>
<tr class="memdesc:gab0df7903f398f360d71e8beb78ead49b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Service Callback Events.  <a href="group__group__hal__usb__dev__common.html#gab0df7903f398f360d71e8beb78ead49b">More...</a><br /></td></tr>
<tr class="separator:gab0df7903f398f360d71e8beb78ead49b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga3fada34f2e7c54d8fae5def861f41083"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#ga3fada34f2e7c54d8fae5def861f41083">cyhal_usb_dev_init</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> dp, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> dm, const <a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__clock__t">cyhal_clock_t</a> *clk)</td></tr>
<tr class="memdesc:ga3fada34f2e7c54d8fae5def861f41083"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the USB instance.  <a href="group__group__hal__usb__dev__common.html#ga3fada34f2e7c54d8fae5def861f41083">More...</a><br /></td></tr>
<tr class="separator:ga3fada34f2e7c54d8fae5def861f41083"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa88f3aa7717c333c7966588f38a9b47"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#gaaa88f3aa7717c333c7966588f38a9b47">cyhal_usb_dev_free</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj)</td></tr>
<tr class="memdesc:gaaa88f3aa7717c333c7966588f38a9b47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Power down the USB instance.  <a href="group__group__hal__usb__dev__common.html#gaaa88f3aa7717c333c7966588f38a9b47">More...</a><br /></td></tr>
<tr class="separator:gaaa88f3aa7717c333c7966588f38a9b47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga58083386748f9295037d7567330b9677"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#ga58083386748f9295037d7567330b9677">cyhal_usb_dev_connect</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj)</td></tr>
<tr class="memdesc:ga58083386748f9295037d7567330b9677"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make the USB device visible to the USB host.  <a href="group__group__hal__usb__dev__common.html#ga58083386748f9295037d7567330b9677">More...</a><br /></td></tr>
<tr class="separator:ga58083386748f9295037d7567330b9677"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6dea98f1897ac22312814583f70398e3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#ga6dea98f1897ac22312814583f70398e3">cyhal_usb_dev_disconnect</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj)</td></tr>
<tr class="memdesc:ga6dea98f1897ac22312814583f70398e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detach the USB device.  <a href="group__group__hal__usb__dev__common.html#ga6dea98f1897ac22312814583f70398e3">More...</a><br /></td></tr>
<tr class="separator:ga6dea98f1897ac22312814583f70398e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadce224990357806ddf46226cdc4c2fe1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#gadce224990357806ddf46226cdc4c2fe1">cyhal_usb_dev_suspend</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj)</td></tr>
<tr class="memdesc:gadce224990357806ddf46226cdc4c2fe1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspend the USB phy.  <a href="group__group__hal__usb__dev__common.html#gadce224990357806ddf46226cdc4c2fe1">More...</a><br /></td></tr>
<tr class="separator:gadce224990357806ddf46226cdc4c2fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga77b467f803a8bb75c8052e9768370c1a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#ga77b467f803a8bb75c8052e9768370c1a">cyhal_usb_dev_resume</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj)</td></tr>
<tr class="memdesc:ga77b467f803a8bb75c8052e9768370c1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resume the USB phy from a suspended state.  <a href="group__group__hal__usb__dev__common.html#ga77b467f803a8bb75c8052e9768370c1a">More...</a><br /></td></tr>
<tr class="separator:ga77b467f803a8bb75c8052e9768370c1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93a43b761729183af402967f11c212ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#ga93a43b761729183af402967f11c212ae">cyhal_usb_dev_set_configured</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj)</td></tr>
<tr class="memdesc:ga93a43b761729183af402967f11c212ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set this device to the configured state.  <a href="group__group__hal__usb__dev__common.html#ga93a43b761729183af402967f11c212ae">More...</a><br /></td></tr>
<tr class="separator:ga93a43b761729183af402967f11c212ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2ebd7e7f008da1ba1546e5d7892dd89d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#ga2ebd7e7f008da1ba1546e5d7892dd89d">cyhal_usb_dev_set_unconfigured</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj)</td></tr>
<tr class="memdesc:ga2ebd7e7f008da1ba1546e5d7892dd89d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Leave the configured state.  <a href="group__group__hal__usb__dev__common.html#ga2ebd7e7f008da1ba1546e5d7892dd89d">More...</a><br /></td></tr>
<tr class="separator:ga2ebd7e7f008da1ba1546e5d7892dd89d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacee494ef27d4c8b6c9a101b925dc24a9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#gacee494ef27d4c8b6c9a101b925dc24a9">cyhal_usb_dev_sof_enable</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj, bool enable)</td></tr>
<tr class="memdesc:gacee494ef27d4c8b6c9a101b925dc24a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure start of frame interrupt enablement.  <a href="group__group__hal__usb__dev__common.html#gacee494ef27d4c8b6c9a101b925dc24a9">More...</a><br /></td></tr>
<tr class="separator:gacee494ef27d4c8b6c9a101b925dc24a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadfd183f27b145f86cc926bef128bb1a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#gadfd183f27b145f86cc926bef128bb1a5">cyhal_usb_dev_set_address</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj, uint8_t address)</td></tr>
<tr class="memdesc:gadfd183f27b145f86cc926bef128bb1a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the USBPhy's address.  <a href="group__group__hal__usb__dev__common.html#gadfd183f27b145f86cc926bef128bb1a5">More...</a><br /></td></tr>
<tr class="separator:gadfd183f27b145f86cc926bef128bb1a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa5db167ff60bc74a118823bb876bcdd6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#gaa5db167ff60bc74a118823bb876bcdd6">cyhal_usb_dev_register_irq_callback</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj, <a class="el" href="group__group__hal__usb__dev__common.html#ga2f2997674c9f3de87ef66c2a7efba533">cyhal_usb_dev_irq_callback_t</a> callback)</td></tr>
<tr class="memdesc:gaa5db167ff60bc74a118823bb876bcdd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a USB Device callback handler.  <a href="group__group__hal__usb__dev__common.html#gaa5db167ff60bc74a118823bb876bcdd6">More...</a><br /></td></tr>
<tr class="separator:gaa5db167ff60bc74a118823bb876bcdd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa1cbb4285b35e80b57a6fce5127890ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#gaa1cbb4285b35e80b57a6fce5127890ce">cyhal_usb_dev_irq_enable</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj, bool enable)</td></tr>
<tr class="memdesc:gaa1cbb4285b35e80b57a6fce5127890ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure USB Device event enablement.  <a href="group__group__hal__usb__dev__common.html#gaa1cbb4285b35e80b57a6fce5127890ce">More...</a><br /></td></tr>
<tr class="separator:gaa1cbb4285b35e80b57a6fce5127890ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga437539361016b466626e103dd72a886d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#ga437539361016b466626e103dd72a886d">cyhal_usb_dev_process_irq</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj)</td></tr>
<tr class="memdesc:ga437539361016b466626e103dd72a886d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default USB Device interrupt handler.  <a href="group__group__hal__usb__dev__common.html#ga437539361016b466626e103dd72a886d">More...</a><br /></td></tr>
<tr class="separator:ga437539361016b466626e103dd72a886d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga12a92ec4893a4eb384ecf1260ca9ea42"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#ga12a92ec4893a4eb384ecf1260ca9ea42">cyhal_usb_dev_register_event_callback</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj, <a class="el" href="group__group__hal__usb__dev__common.html#gab0df7903f398f360d71e8beb78ead49b">cyhal_usb_dev_event_t</a> event, <a class="el" href="group__group__hal__usb__dev__common.html#ga06d07346fb9aeaca315b468647a79f25">cyhal_usb_dev_event_callback_t</a> callback)</td></tr>
<tr class="memdesc:ga12a92ec4893a4eb384ecf1260ca9ea42"><td class="mdescLeft">&#160;</td><td class="mdescRight">The USB Device event complete callback handler registration.  <a href="group__group__hal__usb__dev__common.html#ga12a92ec4893a4eb384ecf1260ca9ea42">More...</a><br /></td></tr>
<tr class="separator:ga12a92ec4893a4eb384ecf1260ca9ea42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78d5aa4f3ae82dac816698d72743f657"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__usb__dev__common.html#ga78d5aa4f3ae82dac816698d72743f657">cyhal_usb_dev_register_sof_callback</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *obj, <a class="el" href="group__group__hal__usb__dev__common.html#gaf0796dc590759a7809327c60d4616218">cyhal_usb_dev_sof_callback_t</a> callback)</td></tr>
<tr class="memdesc:ga78d5aa4f3ae82dac816698d72743f657"><td class="mdescLeft">&#160;</td><td class="mdescRight">The USB Device start of frame (SOF) complete callback handler registration.  <a href="group__group__hal__usb__dev__common.html#ga78d5aa4f3ae82dac816698d72743f657">More...</a><br /></td></tr>
<tr class="separator:ga78d5aa4f3ae82dac816698d72743f657"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gab0df7903f398f360d71e8beb78ead49b" name="gab0df7903f398f360d71e8beb78ead49b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab0df7903f398f360d71e8beb78ead49b">&#9670;&nbsp;</a></span>cyhal_usb_dev_event_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__group__hal__usb__dev__common.html#gab0df7903f398f360d71e8beb78ead49b">cyhal_usb_dev_event_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Service Callback Events. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggab0df7903f398f360d71e8beb78ead49ba519b2fbe16ee25f7b19e30e1055a6532" name="ggab0df7903f398f360d71e8beb78ead49ba519b2fbe16ee25f7b19e30e1055a6532"></a>CYHAL_USB_DEV_EVENT_BUS_RESET&#160;</td><td class="fielddoc"><p >Callback hooked to bus reset interrupt. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab0df7903f398f360d71e8beb78ead49baa1d503404e8c909e63c329dc4f74684b" name="ggab0df7903f398f360d71e8beb78ead49baa1d503404e8c909e63c329dc4f74684b"></a>CYHAL_USB_DEV_EVENT_EP0_SETUP&#160;</td><td class="fielddoc"><p >Callback hooked to endpoint 0 SETUP packet interrupt. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab0df7903f398f360d71e8beb78ead49ba2dfe95c0891c7c37eda0c5e707e45229" name="ggab0df7903f398f360d71e8beb78ead49ba2dfe95c0891c7c37eda0c5e707e45229"></a>CYHAL_USB_DEV_EVENT_EP0_IN&#160;</td><td class="fielddoc"><p >Callback hooked to endpoint 0 IN packet interrupt. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab0df7903f398f360d71e8beb78ead49bac715be16269b7dfb4294a8fb13b649ab" name="ggab0df7903f398f360d71e8beb78ead49bac715be16269b7dfb4294a8fb13b649ab"></a>CYHAL_USB_DEV_EVENT_EP0_OUT&#160;</td><td class="fielddoc"><p >Callback hooked to endpoint 0 OUT packet interrupt. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga3fada34f2e7c54d8fae5def861f41083" name="ga3fada34f2e7c54d8fae5def861f41083"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3fada34f2e7c54d8fae5def861f41083">&#9670;&nbsp;</a></span>cyhal_usb_dev_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_usb_dev_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>dp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>dm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__clock__t">cyhal_clock_t</a> *&#160;</td>
          <td class="paramname"><em>clk</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize the USB instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">obj</td><td>Pointer to a USB object. The caller must allocate the memory for this object but the init function will initialize its contents. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dp</td><td>The D+ pin to initialize </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dm</td><td>The D- pin to initialize </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">clk</td><td>The clock to use can be shared, if not provided a new clock will be allocated</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the initialization request </dd></dl>

</div>
</div>
<a id="gaaa88f3aa7717c333c7966588f38a9b47" name="gaaa88f3aa7717c333c7966588f38a9b47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaa88f3aa7717c333c7966588f38a9b47">&#9670;&nbsp;</a></span>cyhal_usb_dev_free()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_usb_dev_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Power down the USB instance. </p>
<p >Disable interrupts and stop sending events.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">obj</td><td>The USB device object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga58083386748f9295037d7567330b9677" name="ga58083386748f9295037d7567330b9677"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga58083386748f9295037d7567330b9677">&#9670;&nbsp;</a></span>cyhal_usb_dev_connect()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_usb_dev_connect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Make the USB device visible to the USB host. </p>
<p >Enable either the D+ or D- pull-up so the host can detect the presence of this device.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">obj</td><td>The USB device object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga6dea98f1897ac22312814583f70398e3" name="ga6dea98f1897ac22312814583f70398e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6dea98f1897ac22312814583f70398e3">&#9670;&nbsp;</a></span>cyhal_usb_dev_disconnect()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_usb_dev_disconnect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Detach the USB device. </p>
<p >Disable the D+ and D- pull-up and stop responding to USB traffic.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">obj</td><td>The USB device object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gadce224990357806ddf46226cdc4c2fe1" name="gadce224990357806ddf46226cdc4c2fe1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadce224990357806ddf46226cdc4c2fe1">&#9670;&nbsp;</a></span>cyhal_usb_dev_suspend()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_usb_dev_suspend </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Suspend the USB phy. </p>
<p >This allows the device to enter deepsleep. Any data left any USB EP buffers will be lost, when device go into deepsleep. Call <a class="el" href="group__group__hal__usb__dev__common.html#ga77b467f803a8bb75c8052e9768370c1a">cyhal_usb_dev_resume</a> to resume USB from deepsleep.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The usb device object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga77b467f803a8bb75c8052e9768370c1a" name="ga77b467f803a8bb75c8052e9768370c1a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga77b467f803a8bb75c8052e9768370c1a">&#9670;&nbsp;</a></span>cyhal_usb_dev_resume()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_usb_dev_resume </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Resume the USB phy from a suspended state. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__group__hal__usb__dev__common.html#gadce224990357806ddf46226cdc4c2fe1" title="Suspend the USB phy.">cyhal_usb_dev_suspend</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The usb device object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga93a43b761729183af402967f11c212ae" name="ga93a43b761729183af402967f11c212ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga93a43b761729183af402967f11c212ae">&#9670;&nbsp;</a></span>cyhal_usb_dev_set_configured()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_usb_dev_set_configured </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set this device to the configured state. </p>
<p >Enable added endpoints if they are not enabled already.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">obj</td><td>The USB device object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga2ebd7e7f008da1ba1546e5d7892dd89d" name="ga2ebd7e7f008da1ba1546e5d7892dd89d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2ebd7e7f008da1ba1546e5d7892dd89d">&#9670;&nbsp;</a></span>cyhal_usb_dev_set_unconfigured()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_usb_dev_set_unconfigured </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Leave the configured state. </p>
<p >This is a notification to the USBPhy indicating that the device is leaving the configured state. The USBPhy can disable all endpoints other than endpoint 0.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">obj</td><td>The USB device object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gacee494ef27d4c8b6c9a101b925dc24a9" name="gacee494ef27d4c8b6c9a101b925dc24a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacee494ef27d4c8b6c9a101b925dc24a9">&#9670;&nbsp;</a></span>cyhal_usb_dev_sof_enable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_usb_dev_sof_enable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configure start of frame interrupt enablement. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">obj</td><td>The USB device object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">enable</td><td>True to turn on interrupt and start calling sof callback on every frame, False to turn off interrupt and stop calling sof callback. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gadfd183f27b145f86cc926bef128bb1a5" name="gadfd183f27b145f86cc926bef128bb1a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadfd183f27b145f86cc926bef128bb1a5">&#9670;&nbsp;</a></span>cyhal_usb_dev_set_address()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_usb_dev_set_address </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the USBPhy's address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">obj</td><td>The USB device object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">address</td><td>This device's USB address </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaa5db167ff60bc74a118823bb876bcdd6" name="gaa5db167ff60bc74a118823bb876bcdd6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa5db167ff60bc74a118823bb876bcdd6">&#9670;&nbsp;</a></span>cyhal_usb_dev_register_irq_callback()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_usb_dev_register_irq_callback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__usb__dev__common.html#ga2f2997674c9f3de87ef66c2a7efba533">cyhal_usb_dev_irq_callback_t</a>&#160;</td>
          <td class="paramname"><em>callback</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a USB Device callback handler. </p>
<p >This function will be called when the USB interrupt is triggered. This interrupt can be enabled or disabled using <a class="el" href="group__group__hal__usb__dev__common.html#gaa1cbb4285b35e80b57a6fce5127890ce">cyhal_usb_dev_irq_enable</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">obj</td><td>The USB device object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>The event handler function which will be invoked when the event fires</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the register_irq_callback request </dd></dl>

</div>
</div>
<a id="gaa1cbb4285b35e80b57a6fce5127890ce" name="gaa1cbb4285b35e80b57a6fce5127890ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa1cbb4285b35e80b57a6fce5127890ce">&#9670;&nbsp;</a></span>cyhal_usb_dev_irq_enable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_usb_dev_irq_enable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configure USB Device event enablement. </p>
<p >When the interrupt is enabled and triggered, the function specified by <a class="el" href="group__group__hal__usb__dev__common.html#gaa5db167ff60bc74a118823bb876bcdd6">cyhal_usb_dev_register_irq_callback</a> will be called.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">obj</td><td>The usb device object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">enable</td><td>True to turn on events, False to turn off </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga437539361016b466626e103dd72a886d" name="ga437539361016b466626e103dd72a886d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga437539361016b466626e103dd72a886d">&#9670;&nbsp;</a></span>cyhal_usb_dev_process_irq()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_usb_dev_process_irq </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Default USB Device interrupt handler. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">obj</td><td>The USB device object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga12a92ec4893a4eb384ecf1260ca9ea42" name="ga12a92ec4893a4eb384ecf1260ca9ea42"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga12a92ec4893a4eb384ecf1260ca9ea42">&#9670;&nbsp;</a></span>cyhal_usb_dev_register_event_callback()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_usb_dev_register_event_callback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__usb__dev__common.html#gab0df7903f398f360d71e8beb78ead49b">cyhal_usb_dev_event_t</a>&#160;</td>
          <td class="paramname"><em>event</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__usb__dev__common.html#ga06d07346fb9aeaca315b468647a79f25">cyhal_usb_dev_event_callback_t</a>&#160;</td>
          <td class="paramname"><em>callback</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The USB Device event complete callback handler registration. </p>
<p >The events are defined by x type.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">obj</td><td>The USB device object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>The event that triggers the callback, see <a class="el" href="group__group__hal__usb__dev__common.html#gab0df7903f398f360d71e8beb78ead49b">cyhal_usb_dev_event_t</a> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>The callback handler which will be invoked when the interrupt fires </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga78d5aa4f3ae82dac816698d72743f657" name="ga78d5aa4f3ae82dac816698d72743f657"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga78d5aa4f3ae82dac816698d72743f657">&#9670;&nbsp;</a></span>cyhal_usb_dev_register_sof_callback()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_usb_dev_register_sof_callback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__usb__dev__t">cyhal_usb_dev_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__usb__dev__common.html#gaf0796dc590759a7809327c60d4616218">cyhal_usb_dev_sof_callback_t</a>&#160;</td>
          <td class="paramname"><em>callback</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The USB Device start of frame (SOF) complete callback handler registration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">obj</td><td>The USB device object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>The callback handler which will be invoked when the interrupt fires </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part
<div id="nav-path" class="navpath">
    <ul>
        <li class="footer">
            Generated for <b>Hardware Abstraction Layer (HAL)</b> by <b>Cypress Semiconductor Corporation</b>.
            All rights reserved.
        </li>
    </ul>
</div>
-->
</body>
</html>
